package com.ce.pms.occupation.service;

import java.util.Set;

import com.ce.pms.base.service.IPmsBaseService;
import com.ce.pms.occupation.model.IdentityValidateDO;
import com.ce.pms.occupation.model.OccHouseClientInfoDO;
import com.ce.pms.occupation.vo.IdentityValidateVO;
import com.ce.pms.occupation.vo.OccupationQueryConditionVO;
import com.sitechasia.webx.core.support.Page;


/**
 * 入伙身份验证服务接口
 */
public interface IIdentityValidateService extends IPmsBaseService
{

   /**
    * 功能描述:新增身份验证  <br>
    * @param identityValidate
    * @return
    * Create author: 王浩羽 <br>
    * Create on:Dec 31, 2008  <br>
    * Edit author:  <br>
    * Edit on:    <br>
    * Why:     <br>
    */
   public IdentityValidateVO addIdentityValidate(IdentityValidateVO identityValidate);

   /**
    * 功能描述: 修改身份验证 <br>
    * @param identityValidate
    * @return
    * Create author: 王浩羽 <br>
    * Create on:Dec 31, 2008  <br>
    * Edit author:  <br>
    * Edit on:    <br>
    * Why:     <br>
    */
   public IdentityValidateVO editIdentityValidate(IdentityValidateVO identityValidate);

   /**
    * 功能描述: 删除身份验证 <br>
    * @param identityValidateId
    * Create author: 王浩羽 <br>
    * Create on:Dec 31, 2008  <br>
    * Edit author:  <br>
    * Edit on:    <br>
    * Why:     <br>
    */
   public void delIdentityValidate(Long identityValidateId);

   /**
    * 功能描述: 查看身份验证列表 <br>
    * @param queryCondition 查询条件
    * @return
    * Create author: 王浩羽 <br>
    * Create on:Dec 30, 2008  <br>
    * Edit author:  <br>
    * Edit on:    <br>
    * Why:     <br>
    */
   public Page queryIdentityValidateList(OccupationQueryConditionVO queryCondition);

   /**
    * 查看身份验证明细
    * @param identityValidateId - 身份验证ID
    * @return IdentityValidateVO
    * @roseuid 494B3D250177
    */
   public IdentityValidateVO getIdentityValidateDetail(Long identityValidateId);

   /**
    * 通知身份验证，已经进行了资料的收发
    * @param identityValidateId - 资料收发对应的身份验证ID
    * @roseuid 494F55930203
    */
   public void receiveAddedDocumentReceiveSend(Long identityValidateId);

   /**
    * 通知身份验证，已验过房并告知验房结果
    * @param identityValidateId - 参加验房对应的身份验证ID
    * @param result  验房结果
    * @roseuid 495045B3038A
    */
   public void receiveAddedOccInspectionRequisition(Long identityValidateId,String result);

   /**
    * 通知身份验证，已移交物品
    * @param identityValidateId
    * @param status
    * @roseuid 4951B379002E
    */
   public void receiveAddedThingHandover(Long identityValidateId, String status);

  /**
   * 功能描述:通知身份验证，已预缴款  <br>
   * @param identityValidateId - 身份验证ID
   * @roseuid 4954452D0177
   * Create author:王浩羽 <br>
   * Create on:2009-1-13  <br>
   * Edit author:  <br>
   * Edit on:    <br>
   * Why:     <br>
   */
   public void receiveAddedOccupationCharge(Long identityValidateId);

   /**
    * 功能描述: 根据房间ID查找认证对象 <br>
    * @param houseId
    * @return
    * Create author: 王浩羽 <br>
    * Create on:Dec 31, 2008  <br>
    * Edit author:  <br>
    * Edit on:    <br>
    * Why:     <br>
    */
   public IdentityValidateVO findIdentityValidateVOByHouseId(Long houseId);

   /**
	 * 功能描述: IdentityValidateDO 转 IdentityValidateVO <br>
	 * @param identityValidateDO
	 * @param identityValidateVO
	 * Create author: 王浩羽 <br>
	 * Create on:Jan 4, 2009  <br>
	 * Edit author:  <br>
	 * Edit on:    <br>
	 * Why:     <br>
	 */
   public void assembleIdentityValidateD2V(IdentityValidateDO identityValidateDO, IdentityValidateVO identityValidateVO);


   /**
    * 功能描述: IdentityValidateVO 转 IdentityValidateDO <br>
    * @param identityValidateVO
    * @param identityValidateDO
    * Create author: 王浩羽 <br>
    * Create on:Jan 4, 2009  <br>
    * Edit author:  <br>
    * Edit on:    <br>
    * Why:     <br>
    */
  public void assembleIdentityValidateV2D(IdentityValidateVO identityValidateVO, IdentityValidateDO identityValidateDO);

  /**
	 * 功能描述:拼装所有产权房房号，逗号为分隔符  <br>
	 * @param clientInfos
	 * @return
	 * Create author: 王浩羽 <br>
	 * Create on:Jan 15, 2009  <br>
	 * Edit author:  <br>
	 * Edit on:    <br>
	 * Why:     <br>
	 */
  public String getAllHouseNumber(Set<OccHouseClientInfoDO> clientInfos);


	public boolean isAllowDelIdentityValidate(Long id);
}
